package TrabajoPractico;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public abstract class Formato {
		
	//Devuelve una instancia de Fecha de acuerdo al String pasado como parametro
		public Fecha crearFecha(String cadena) throws NoReconoceCadena{
			
				Calendar fecha = Calendar.getInstance();
			
				try {
					SimpleDateFormat dateConFormato = new SimpleDateFormat(this.formatoDeParseo());
					dateConFormato.setLenient(false);
					fecha.setTime(dateConFormato.parse(cadena));
					return new Fecha(fecha);
				
				} catch (ParseException e) {
					throw new NoReconoceCadena("La cadena ingresada es invalida." +
							" Debe ingresar una cadena con el siguiente formato:" + this.formatoAIngresar());
				}
				
			
		}
	   
		public abstract String formatoAIngresar();
		public abstract String formatoDeParseo();
		public abstract boolean reconoce(String cadena);	
	}



